n = int(input())
a = [int(i) for i in input().split()]
b = [int(i) for i in input().split()]
d = dict()
for j in range(n):
if b[j] not in d:
d[b[j]] = []
d[b[j]].append(j)
a1 = sorted(a)[::-1]
b = sorted(b)
for i in range(n):
ind = d[b[i]].pop()
a[ind] = a1[i]
print(*a)
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
bool cmp(pair<int,int> p1,pair<int,int> p2){
return p1.second<p2.second;
}
bool rcmp(pair<int,int> p1,pair<int,int> p2){
return p1.second<p2.second;
}
int main(){
ll n;
cin>>n;
vector<int> v_a;
vector<pair<int,int>> v_b;
for(ll i=0;i<n;i++){
ll x;
cin>>x;
v_a.push_back(x);
}
for(ll i=0;i<n;i++){
ll y;
cin>>y;
v_b.push_back(make_pair(i,y));
}
sort(v_a.begin(),v_a.end(),greater<int>());
sort(v_b.begin(),v_b.end(),cmp);
ll x[n];
for(ll i=0;i<n;i++){
x[v_b[i].first]=v_a[i];
}
for(ll i=0;i<n;i++){
cout<<x[i]<<" ";
}
}
492A - Vanya and Cubes | 217A - Ice Skating |
270A - Fancy Fence | 181A - Series of Crimes |
1638A - Reverse | 1654C - Alice and the Cake |
369A - Valera and Plates | 1626A - Equidistant Letters |
977D - Divide by three multiply by two | 1654B - Prefix Removals |
1654A - Maximum Cake Tastiness | 1649A - Game |
139A - Petr and Book | 1612A - Distance |
520A - Pangram | 124A - The number of positions |
1041A - Heist | 901A - Hashing Trees |
1283A - Minutes Before the New Year | 1654D - Potion Brewing Class |
1107B - Digital root | 25A - IQ test |
785A - Anton and Polyhedrons | 1542B - Plus and Multiply |
306A - Candies | 1651C - Fault-tolerant Network |
870A - Search for Pretty Integers | 1174A - Ehab Fails to Be Thanos |
1169A - Circle Metro | 780C - Andryusha and Colored Balloons |